home *** CD-ROM | disk | FTP | other *** search
- package netscape.applet;
-
- import java.awt.Component;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import netscape.application.BezelBorder;
- import netscape.application.Bitmap;
- import netscape.application.Border;
- import netscape.application.Color;
- import netscape.application.Font;
- import netscape.application.Image;
- import netscape.application.Rect;
- import netscape.application.ScrollGroup;
- import netscape.application.Sound;
- import netscape.application.View;
- import netscape.util.Enumeration;
-
- class DefaultEmbeddedOwner implements EmbeddedBeanOwner, EmbeddedProgramOwner {
- public void embeddedBeanDidInit(EmbeddedBeanTracker var1) {
- String var2 = var1.className();
- Object var3 = this.objectFor(var1, var2);
- if (var3 != null) {
- if (var3 instanceof Component && !(var3 instanceof EmbeddedAppletFrame)) {
- this.embedComponent(var1, var3, var3.getClass());
- } else if (var3 instanceof View) {
- this.embedView(var1, var3, var3.getClass());
- } else {
- System.err.println("Error: " + var2 + " is not derived from View or Component.");
- }
- }
- }
-
- public void embeddedBeanDidStart(EmbeddedBeanTracker var1) {
- }
-
- public void embeddedBeanDidStop(EmbeddedBeanTracker var1) {
- }
-
- public void embeddedBeanDidDestroy(EmbeddedBeanTracker var1) {
- }
-
- public void programDidInit(EmbeddedProgramTracker var1) {
- }
-
- public boolean programCanShutdown(EmbeddedProgramTracker var1) {
- return true;
- }
-
- void embedView(EmbeddedBeanTracker var1, Object var2, Class var3) {
- View var4 = (View)var2;
- ScrollGroup var5 = null;
- boolean var6 = "true".equalsIgnoreCase(var1.parameter("View Has Vertical Scroll Bar"));
- boolean var7 = "true".equalsIgnoreCase(var1.parameter("View Has Horizontal Scroll Bar"));
- if (!var6 && !var7) {
- var4.setBounds(var1.bounds());
- } else {
- var5 = new ScrollGroup();
- ((View)var5).setBounds(var1.bounds());
- if (var6) {
- var5.setHasVertScrollBar(true);
- }
-
- if (var7) {
- var5.setHasHorizScrollBar(true);
- }
-
- var5.setContentView(var4);
- Rect var8 = var5.scrollView().bounds();
- var4.setBounds(0, 0, var8.width, var8.height);
- }
-
- Enumeration var15 = var1.parameterKeys();
- Enumeration var9 = var1.parameterValues();
-
- while(var15.hasMoreElements() && var9.hasMoreElements()) {
- String var10 = (String)var15.nextElement();
- String var11 = (String)var9.nextElement();
- Object var13 = var2;
-
- int var12;
- while((var12 = var10.indexOf(46)) != -1) {
- String var14 = var10.substring(0, var12);
- if (var10.length() == var12 + 1) {
- var10 = "";
- } else {
- var10 = var10.substring(var12 + 1);
- var13 = this.getSubObject(var1, var13, var13.getClass(), var14);
- if (var13 == null) {
- var10 = "";
- }
- }
- }
-
- if (var13 != var2 && var13 != null) {
- this.setObjectValue(var1, var13, var13.getClass(), var10, var11);
- }
- }
-
- this.setObjectValues(var1, var2, var3);
- if (var5 != null) {
- var1.rootView().addSubview(var5);
- } else {
- var1.rootView().addSubview(var4);
- }
-
- var4.setDirty(true);
- var1.setActualObject(var4);
- }
-
- void embedComponent(EmbeddedBeanTracker var1, Object var2, Class var3) {
- Component var4 = (Component)var2;
- Rect var5 = var1.bounds();
- var4.reshape(var5.x, var5.y, var5.width, var5.height);
- Enumeration var6 = var1.parameterKeys();
- Enumeration var7 = var1.parameterValues();
-
- while(var6.hasMoreElements() && var7.hasMoreElements()) {
- String var8 = (String)var6.nextElement();
- String var9 = (String)var7.nextElement();
- Object var11 = var2;
-
- int var10;
- while((var10 = var8.indexOf(46)) != -1) {
- String var12 = var8.substring(0, var10);
- if (var8.length() == var10 + 1) {
- var8 = "";
- } else {
- var8 = var8.substring(var10 + 1);
- var11 = this.getSubObject(var1, var11, var11.getClass(), var12);
- if (var11 == null) {
- var8 = "";
- }
- }
- }
-
- if (var11 != var2 && var11 != null) {
- this.setObjectValue(var1, var11, var11.getClass(), var8, var9);
- }
- }
-
- this.setObjectValues(var1, var2, var3);
- var1.frame().add(var4);
- var1.setActualObject(var4);
- }
-
- Object getSubObject(EmbeddedBeanTracker var1, Object var2, Class var3, String var4) {
- Object var5 = null;
- Method[] var6 = var3.getMethods();
-
- for(int var7 = 0; var7 < var6.length; ++var7) {
- String var8 = var6[var7].getName();
- if (var8.equalsIgnoreCase(var4) || var8.equalsIgnoreCase("get" + var4)) {
- if (var6[var7].getParameterTypes().length == 0 && !var6[var7].getReturnType().isPrimitive()) {
- try {
- var5 = var6[var7].invoke(var2, (Object[])null);
- } catch (NullPointerException var9) {
- } catch (IllegalArgumentException var10) {
- } catch (IllegalAccessException var11) {
- } catch (InvocationTargetException var12) {
- }
- }
- break;
- }
- }
-
- return var5;
- }
-
- void setObjectValue(EmbeddedBeanTracker var1, Object var2, Class var3, String var4, String var5) {
- Method[] var6 = var3.getMethods();
-
- for(int var7 = 0; var7 < var6.length; ++var7) {
- String var8 = var6[var7].getName();
- if (var8.length() > 3 && var8.substring(0, 3).equalsIgnoreCase("set") && var8.substring(3).equalsIgnoreCase(var4)) {
- Class[] var9 = var6[var7].getParameterTypes();
- if (var9.length == 1) {
- Object[] var10 = new Object[1];
- boolean var11 = false;
- if (var5.equals("null")) {
- var10[0] = null;
- var11 = true;
- } else {
- var10[0] = this.getParameterValue(var1, var9[0], var5);
- }
-
- if (var11 || var10[0] != null) {
- try {
- var6[var7].invoke(var2, var10);
- } catch (NullPointerException var12) {
- } catch (IllegalArgumentException var13) {
- } catch (IllegalAccessException var14) {
- } catch (InvocationTargetException var15) {
- }
- }
- }
- }
- }
-
- }
-
- void setObjectValues(EmbeddedBeanTracker var1, Object var2, Class var3) {
- Method[] var4 = var3.getMethods();
-
- for(int var5 = 0; var5 < var4.length; ++var5) {
- String var6 = var4[var5].getName();
- if (var6.length() > 3 && var6.substring(0, 3).equalsIgnoreCase("set")) {
- String var7 = var6.substring(3);
- String var8 = var1.parameter(var7);
- if (var8 != null) {
- Class[] var9 = var4[var5].getParameterTypes();
- if (var9.length == 1) {
- Object[] var10 = new Object[1];
- boolean var11 = false;
- if (var8.equals("null")) {
- var10[0] = null;
- var11 = true;
- } else {
- var10[0] = this.getParameterValue(var1, var9[0], var8);
- }
-
- if (var11 || var10[0] != null) {
- try {
- var4[var5].invoke(var2, var10);
- } catch (NullPointerException var12) {
- } catch (IllegalArgumentException var13) {
- } catch (IllegalAccessException var14) {
- } catch (InvocationTargetException var15) {
- }
- }
- }
- }
- }
- }
-
- }
-
- Object objectFor(EmbeddedBeanTracker var1, String var2) {
- if (var2.length() > 16 && var2.substring(0, 16).equals("netscape.applet.")) {
- System.err.println("Illegal attemp to load class from netscape.applet");
- return null;
- } else {
- Class var3;
- try {
- var3 = var1.eop.task.loadClass(var2);
- } catch (ClassNotFoundException var9) {
- System.err.println(((Throwable)var9).toString());
- return null;
- } catch (IllegalArgumentException var10) {
- System.err.println(((Throwable)var10).toString());
- return null;
- }
-
- try {
- Object var4 = var3.newInstance();
- return var4;
- } catch (InstantiationException var6) {
- System.err.println(((Throwable)var6).toString());
- return null;
- } catch (IllegalAccessException var7) {
- System.err.println(((Throwable)var7).toString());
- return null;
- } catch (NoSuchMethodError var8) {
- System.err.println(((Throwable)var8).toString());
- System.err.println(" Class does not have default constructor: " + var2);
- return null;
- }
- }
- }
-
- Font fontFor(String var1) {
- Font var2 = Font.fontNamed(var1);
- if (var2 == null) {
- var2 = Font.defaultFont();
- }
-
- return var2;
- }
-
- Color colorFor(String var1) {
- Color var2 = null;
- if ("red".equalsIgnoreCase(var1)) {
- var2 = Color.red;
- } else if ("green".equalsIgnoreCase(var1)) {
- var2 = Color.green;
- } else if ("blue".equalsIgnoreCase(var1)) {
- var2 = Color.blue;
- } else if ("cyan".equalsIgnoreCase(var1)) {
- var2 = Color.cyan;
- } else if ("magenta".equalsIgnoreCase(var1)) {
- var2 = Color.magenta;
- } else if ("yellow".equalsIgnoreCase(var1)) {
- var2 = Color.yellow;
- } else if ("orange".equalsIgnoreCase(var1)) {
- var2 = Color.orange;
- } else if ("pink".equalsIgnoreCase(var1)) {
- var2 = Color.pink;
- } else if ("white".equalsIgnoreCase(var1)) {
- var2 = Color.white;
- } else if ("lightGray".equalsIgnoreCase(var1)) {
- var2 = Color.lightGray;
- } else if ("gray".equalsIgnoreCase(var1)) {
- var2 = Color.gray;
- } else if ("darkGray".equalsIgnoreCase(var1)) {
- var2 = Color.darkGray;
- } else if ("black".equalsIgnoreCase(var1)) {
- var2 = Color.black;
- }
-
- if (var2 == null) {
- try {
- if (var1.charAt(0) == '#' && var1.length() > 1) {
- var1 = var1.substring(1);
- }
-
- int var3 = Integer.parseInt(var1, 16);
- var2 = new Color(var3);
- } catch (NumberFormatException var4) {
- }
- }
-
- if (var2 == null) {
- var2 = Color.white;
- }
-
- return var2;
- }
-
- Image imageFor(String var1) {
- Bitmap var2 = Bitmap.bitmapNamed(var1);
- return var2;
- }
-
- Sound soundFor(String var1) {
- Sound var2 = Sound.soundNamed(var1);
- return var2;
- }
-
- Border borderFor(EmbeddedBeanTracker var1, String var2) {
- Border var3 = null;
- if ("raisedBezel".equalsIgnoreCase(var2)) {
- var3 = BezelBorder.raisedBezel();
- } else if ("loweredBezel".equalsIgnoreCase(var2)) {
- var3 = BezelBorder.loweredBezel();
- } else if ("groovedBezel".equalsIgnoreCase(var2)) {
- var3 = BezelBorder.groovedBezel();
- } else if ("raisedButtonBezel".equalsIgnoreCase(var2)) {
- var3 = BezelBorder.raisedButtonBezel();
- } else if ("loweredButtonBezel".equalsIgnoreCase(var2)) {
- var3 = BezelBorder.loweredButtonBezel();
- }
-
- if (var3 == null) {
- Object var4 = this.objectFor(var1, var2);
- if (var4 instanceof Border) {
- var3 = (Border)var4;
- }
- }
-
- return var3;
- }
-
- Object getParameterValue(EmbeddedBeanTracker var1, Class var2, String var3) {
- Object var4 = null;
- if (var2.isPrimitive()) {
- if (var2 == Boolean.TYPE) {
- var4 = new Boolean(var3);
- } else if (var2 == Character.TYPE) {
- var4 = new Character(var3.charAt(0));
- } else if (var2 == Byte.TYPE) {
- try {
- var4 = new Byte(var3);
- } catch (NumberFormatException var11) {
- var4 = new Byte((byte)0);
- }
- } else if (var2 == Short.TYPE) {
- try {
- var4 = new Short(var3);
- } catch (NumberFormatException var10) {
- var4 = new Short((short)0);
- }
- } else if (var2 == Integer.TYPE) {
- try {
- var4 = new Integer(var3);
- } catch (NumberFormatException var9) {
- var4 = new Integer(0);
- }
- } else if (var2 == Long.TYPE) {
- try {
- var4 = new Long(var3);
- } catch (NumberFormatException var8) {
- var4 = new Long(0L);
- }
- } else if (var2 == Float.TYPE) {
- try {
- var4 = new Float(var3);
- } catch (NumberFormatException var7) {
- var4 = new Float((double)0.0F);
- }
- } else if (var2 == Double.TYPE) {
- try {
- var4 = new Double(var3);
- } catch (NumberFormatException var6) {
- var4 = new Double((double)0.0F);
- }
- }
- } else {
- String var5 = var2.getName();
- if (var5.equals("java.lang.String")) {
- var4 = var3;
- } else if (var5.equals("netscape.application.Font")) {
- var4 = this.fontFor(var3);
- } else if (var5.equals("netscape.application.Color")) {
- var4 = this.colorFor(var3);
- } else if (var5.equals("netscape.application.Image")) {
- var4 = this.imageFor(var3);
- } else if (var5.equals("netscape.application.Sound")) {
- var4 = this.soundFor(var3);
- } else if (var5.equals("netscape.application.Border")) {
- var4 = this.borderFor(var1, var3);
- } else {
- var4 = this.objectFor(var1, var3);
- if (var4 != null && var4.getClass() != var2) {
- var4 = null;
- }
- }
- }
-
- return var4;
- }
- }
-